# 该模块只处理，发送短信的任务
# 使用django中提供的logging配置
import logging

from celery_tasks.main import app
from mlh.utils.yuntongxun.sms import CCP

logger = logging.getLogger("django")

# 验证码短信模板
SMS_CODE_TEMP_ID = 1


@app.task(name='send_sms_code')  # 使用celery主模块创建的实例，给需要执行任务的函数，进行装饰
def send_sms_code(mobile, code, expires,SMS_CODE_TEMP_ID):
    """
    发送短信验证码
    :param mobile: 手机号
    :param code: 验证码
    :param expires: 有效期
    :return: None
    """

    try:
        ccp = CCP()

        result = ccp.send_template_sms(mobile, [code, expires], SMS_CODE_TEMP_ID)
        print(code)
    except Exception as e:
        logger.error("发送验证码短信[异常][ mobile: %s, message: %s ]" % (mobile, e))
    else:
        if result == 0:
            logger.info("发送验证码短信[正常][ mobile: %s ]" % mobile)
        else:
            logger.warning("发送验证码短信[失败][ mobile: %s ]" % mobile)
            # 由于使用异步队列实现发短信功能，所以只需要发送短信，完成任务，不需要进行响应